package com.example.config;

import com.example.interceptor.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * Web配置类 - 配置拦截器规则
 * 实现WebMvcConfigurer接口来自定义Spring MVC配置
 */
@Configuration  // 声明为配置类，Spring启动时会自动加载
public class WebConfig implements WebMvcConfigurer {

    // 注入自定义的登录拦截器对象
    @Autowired  // 自动注入LoginInterceptor实例
    private LoginInterceptor loginInterceptor;

    /**
     * 添加拦截器配置
     * @param registry 拦截器注册表，用于注册和管理拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册自定义拦截器并配置拦截规则
        registry.addInterceptor(loginInterceptor)  // 注册登录拦截器
                .addPathPatterns("/**")  // 设置拦截器拦截的请求路径（/**表示拦截所有请求）
                .excludePathPatterns("/user/login")  // 设置拦截器排除拦截的路径（登录接口）
                .excludePathPatterns("/**/*.js")  // 排除前端静态资源：所有JS文件
                .excludePathPatterns("/**/*.css")  // 排除前端静态资源：所有CSS文件
                .excludePathPatterns("/**/*.png")  // 排除前端静态资源：所有PNG图片
                .excludePathPatterns("/**/*.html");  // 排除前端静态资源：所有HTML文件
    }
}
